package repository

import (
	"github.com/go-gomail/gomail"
	"github.com/go-redis/redis"
	"guliedu/utils"
	"log"
	"math/rand"
	"strconv"
	"time"
)

var (
	client *redis.Client
)

func init() {
	client = redis.NewClient(&redis.Options{
		Addr:     utils.Addr,
		Password: utils.Password, // no password set
		DB:       utils.RedisDB,  // use default DB
	})
}

func sendEmail(to string) {
	rand.Seed(time.Now().UnixNano())
	code := rand.Intn(9000) + 1000
	codeStr := strconv.Itoa(code)

	//e := email.NewEmail()
	//e.From = "奔跑的小辣条 <1628652790@qq.com>"
	//e.To = []string{to}
	//e.Subject = "注册验证码！"
	//e.Text = []byte("您的验证码是:" + codeStr)
	//err := e.Send("smtp.qq.com:25", smtp.PlainAuth("", "1628652790@qq.com", "yqaymqcycapkbheb", "smtp.qq.com"))
	//if err != nil {
	//	fmt.Println(err)
	//}

	// 创建邮件
	m := gomail.NewMessage()
	// 第一个参数：From
	// 第二个参数：发件人邮箱
	// 第三个参数：发件人名称
	m.SetAddressHeader("From", utils.Email, "奔跑的小辣条")
	m.SetHeader("To",
		m.FormatAddress(to, ""),
	)
	// 主题：邮件名称
	m.SetHeader("Subject", "验证码")
	// 邮件内容主体，例如：奔跑的小辣条在线教育网注册验证码：3219
	m.SetBody("text/plain", "奔跑的小辣条在线教育网注册验证码："+codeStr)
	// 第一个参数：邮件服务器
	// 第二个参数：端口
	// 第三个参数：发件人邮箱
	// 第四个参数：邮箱授权码
	d := gomail.NewDialer("smtp.qq.com", 465, utils.Email, utils.EmailAuthCode)
	if err := d.DialAndSend(m); err != nil {
		log.Println("send mail err:", err)
	}

	client.Set("user:"+to, codeStr, time.Minute*5)
}
